package com.cxso.example.request.etc;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;


@Getter
@Setter
public class EtcWaybillStartRequest {

    @Schema(description = "运单编号")
    @NotBlank(message = "运单编号不能为空")
    private String waybillNum;

    @Schema(description = "车牌号")
    @NotBlank(message = "车牌号不能为空")
    private String plateNum;

    @Schema(description = "车牌颜色", example = "蓝色:0 黄色:1,黑色:2,白色:3,渐变绿色:4,黄绿渐变色:5,蓝白渐变色:6,未确定:9")
    @NotNull(message = "车牌颜色不能为空")
    private Integer plateColor;

    @Schema(description = "运单开始地址，最大100字符")
    @NotBlank(message = "运单开始地址不能为空")
    private String sourceAddr;

    @Schema(description = "运单目的地，最大100字符")
    @NotBlank(message = "运单目的地不能为空")
    private String destAddr;

    @Schema(description = "运单开始时间")
    @NotNull(message = "运单开始时间不能为空")
    private Date startTime;

    @Schema(description = "运单预计完成时间")
    @NotNull(message = "运单预计完成时间不能为空")
    private Date endTime;

    @Schema(description = "运单费用", example = "大于0的整数，单位：分")
    @NotNull(message = "运单费用不能为空")
    @Min(value = 0, message = "运单费用不能小于0")
    private long fee;

    @Schema(description = "运单来源")
    private String source;

    @Schema(description = "司机姓名")
    @NotBlank(message = "司机姓名不能为空")
    private String driverName;

    @Schema(description = "运输协议文件内容base64")
    @NotBlank(message = "运输协议文件不能为空")
    private String driverContract;
}
